Skip to content

Docker Compose

Docker-compose安装

Docker Compose 的基础使用

介绍:Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。

Compose 允许用户通过一个单独的 docker-compose.yml 模板文件(YAML 格式)来定义一组相关联的应用容器为一个项目(project)

Compose 中有两个重要的概念:

  • 服务 (service):一个应用的容器,实际上可以包括若干运行相同镜像的容器实例。
  • 项目 (project):由一组关联的应用容器组成的一个完整业务单元,在 docker-compose.yml 文件中定义。

1、安装与卸载

Linux

Docker-compose安装

docker compose 是一个工具,能够实现快速编排。

windows/macOS

image.png

卸载操作:

如果是 windows 或者 macOS ,需要卸载一下 Docker Desktop。

如果 Docker Compose 是作为一个单独的二进制文件安装的:

  1. 找到 Docker Compose 的安装位置。如果你不确定其安装位置,可以通过运行 which docker-compose(在 Linux 或 Mac 上)或 where docker-compose(在 Windows 上)来找到它。

  2. 删除 Docker Compose 二进制文件。一旦你知道了 Docker Compose 的安装位置,你可以手动删除该文件。在 Linux 或 Mac 上,通常可以使用 sudo rm 命令来删除:

sudo rm `which docker-compose`

2、如何使用

Compose 使用的三个步骤:

  • 使用 Dockerfile 定义应用程序的环境。
  • 使用 docker-compose.yml 定义构成应用程序的服务,这样它们可以在隔离环境中一起运行。
  • 最后,执行 docker-compose up 命令来启动并运行整个应用程序。

示例使用:

准备一个 SpringBoot 的项目,并打包为 Jar 包

放置到 Linux 的一个文件夹下

创建文件:Dockerfile

# 使用官方 Java 运行时环境作为基础镜像
FROM openjdk:8

# 工作目录设为 /app
WORKDIR /app

# 将本地的 JAR 文件复制到镜像中的 /app 目录
COPY ./zfile-4.1.5.jar /app/myapp_zfile.jar

# 暴露应用运行端口
EXPOSE 8091

# 指定容器启动时执行的命令
CMD ["java", "-jar", "myapp_zfile.jar"]

创建文件 docker-compose.yml

version: '3.8'
services:
  app:
    build: .
    container_name: myapp_zfile
    ports:
      - "8091:8091"

使用 Docker Compose 启动应用

docker-compose up --build

有一个报错:

failed to solve: openjdk:8-jre-slim: failed to do request: Head "https://7iwp6tq0.mirror.aliyuncs.com/v2/library/openjdk/manifests/8-jre-slim?ns=docker.io": dial tcp: lookup 7iwp6tq0.mirror.aliyuncs.com on 192.168.0.1:53: read udp 192.168.0.21:53861->192.168.0.1:53: read: connection refused

最后定位到是 DNS 配置的原因

先尝试改了 Docker 镜像源的配置 配置文件 /etc/docker/daemon.json

改为了

{
  "registry-mirrors": ["https://hub-mirror.c.163.com"]
}

还是报错,尝试访问 ping hub-mirror.c.163.com; 网络是正常的

尝试修改 DNS 配置文件 /etc/resolv.conf;改为了阿里云公共 DNS,

参考链接: https://zhuanlan.zhihu.com/p/339495904

# Generated by NetworkManager
nameserver 223.6.6.6

启动正常

#后台执行
docker-compose up -d

#停止服务
docker-compose down

image.png

其他的使用参考一下这个: https://juejin.cn/post/7042663735156015140

快速使用

安装 docker compose

指定文件后,选择后台运行

docker-compose -f docker-compose-environment-aliyun.yml up -d

参考